Basic Authentication হল HTTP প্রোটোকলের একটি সাধারণ অথেনটিকেশন স্কিমা যেখানে ইউজারের নাম এবং পাসওয়ার্ড ক্লায়েন্ট থেকে সার্ভারে পাঠানো হয়, সাধারণত একটি HTTP হেডারে। Apache HTTP Client-এ Basic Authentication কনফিগারেশন করতে হলে আপনাকে CredentialsProvider এবং BasicAuth ব্যবহার করতে হবে।
প্রথমে, যদি আপনার প্রোজেক্টে Maven ব্যবহৃত হয়, তবে আপনাকে Apache HTTP Client-এর জন্য ডিপেনডেন্সি যুক্ত করতে হবে:
<dependency>
<groupId>org.apache.httpcomponents.client5</groupId>
<artifactId>httpclient5</artifactId>
<version>5.4</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents.core5</groupId>
<artifactId>httpcore5</artifactId>
<version>5.4</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents.httpclient5</groupId>
<artifactId>httpclient5</artifactId>
<version>5.4</version>
</dependency>
Apache HTTP Client-এ Basic Authentication কনফিগার করতে, আপনাকে CredentialsProvider
এবং BasicCredentials
ব্যবহার করতে হবে। নিচে একটি উদাহরণ দেওয়া হলো যেখানে একটি HTTP GET রিকোয়েস্ট Basic Authentication দিয়ে পাঠানো হচ্ছে।
import org.apache.hc.client5.http.impl.classic.HttpClients;
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
import org.apache.hc.client5.http.impl.classic.methods.HttpGet;
import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse;
import org.apache.hc.core5.auth.AuthScope;
import org.apache.hc.core5.auth.BasicCredentialsProvider;
import org.apache.hc.core5.auth.UsernamePasswordCredentials;
import org.apache.http.impl.client.RequestConfig;
import org.apache.http.util.EntityUtils;
import java.io.IOException;
public class HttpClientWithBasicAuth {
public static void main(String[] args) {
// CredentialsProvider সেটআপ
BasicCredentialsProvider credsProvider = new BasicCredentialsProvider();
credsProvider.setCredentials(
new AuthScope("your-api-endpoint.com", 80), // API হোস্ট এবং পোর্ট
new UsernamePasswordCredentials("username", "password") // ইউজারনেম এবং পাসওয়ার্ড
);
// HTTP ক্লায়েন্ট কনফিগারেশন তৈরি
try (CloseableHttpClient httpClient = HttpClients.custom()
.setDefaultCredentialsProvider(credsProvider) // CredentialsProvider সেট করা
.build()) {
// HTTP GET রিকোয়েস্ট তৈরি
HttpGet request = new HttpGet("https://your-api-endpoint.com/resource");
// রিকোয়েস্ট পাঠানো এবং রেসপন্স প্রাপ্তি
try (CloseableHttpResponse response = httpClient.execute(request)) {
String responseBody = EntityUtils.toString(response.getEntity());
System.out.println("Response: " + responseBody);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
BasicCredentialsProvider
ব্যবহার করে ইউজারনেম এবং পাসওয়ার্ড নির্ধারণ করা হয়। এখানে AuthScope
ব্যবহার করে API এর হোস্ট এবং পোর্টও উল্লেখ করা হয়।CredentialsProvider
-এ সংযুক্ত করতে ব্যবহৃত হয়।HttpClients.custom()
ব্যবহার করে HTTP ক্লায়েন্ট কনফিগার করা হয় এবং এতে setDefaultCredentialsProvider()
ব্যবহার করে কনফিগারেশন যোগ করা হয়।execute()
মেথড দিয়ে রিকোয়েস্টটি পাঠানো হয়েছে।Apache HTTP Client Basic Authentication চালানোর সময়, এটি স্বয়ংক্রিয়ভাবে Authorization
হেডারে ইউজারনেম এবং পাসওয়ার্ড সংযুক্ত করে। উদাহরণস্বরূপ, HTTP হেডারে যা পাঠানো হয় তা এরকম দেখতে হতে পারে:
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
এখানে dXNlcm5hbWU6cGFzc3dvcmQ=
হল base64 এ এনকোড করা username:password
।
Apache HTTP Client-এ Basic Authentication কনফিগার করতে CredentialsProvider এবং UsernamePasswordCredentials ব্যবহার করা হয়। এটি HttpClients.custom()
ব্যবহার করে ক্লায়েন্ট কনফিগার করে এবং Authorization
হেডার হিসেবে ইউজারনেম এবং পাসওয়ার্ড পাঠায়।
common.read_more